{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导包\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    张三\n",
       "b    李四\n",
       "c    王五\n",
       "dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 序列（表的一列）\n",
    "names = pd.Series(data=[\"张三\",\"李四\",\"王五\"],index=['a','b','c'])\n",
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'李四'"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用下标取值\n",
    "names['b']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>age</th>\n",
       "      <th>sex</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>张三</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>李四</td>\n",
       "      <td>24</td>\n",
       "      <td>女</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>王五</td>\n",
       "      <td>25</td>\n",
       "      <td>男</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  name  age sex\n",
       "0   张三   23   男\n",
       "1   李四   24   女\n",
       "2   王五   25   男"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# dataframe(表结构)\n",
    "users = pd.DataFrame(data={\n",
    "    \"name\":[\"张三\",\"李四\",\"王五\"],\n",
    "    \"age\":[23,24,25],\n",
    "    \"sex\":['男','女','男']\n",
    "})\n",
    "users"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>age</th>\n",
       "      <th>sex</th>\n",
       "      <th>clazz</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1500100002</td>\n",
       "      <td>吕金鹏</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1500100003</td>\n",
       "      <td>单乐蕊</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>理科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1500100004</td>\n",
       "      <td>葛德曜</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>理科三班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1500100005</td>\n",
       "      <td>宣谷芹</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>理科五班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>1500100996</td>\n",
       "      <td>厉运凡</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科三班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>1500100997</td>\n",
       "      <td>陶敬曦</td>\n",
       "      <td>21</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>1500100998</td>\n",
       "      <td>容昆宇</td>\n",
       "      <td>22</td>\n",
       "      <td>男</td>\n",
       "      <td>理科四班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>1500100999</td>\n",
       "      <td>钟绮晴</td>\n",
       "      <td>23</td>\n",
       "      <td>女</td>\n",
       "      <td>文科五班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             id name  age sex clazz\n",
       "0    1500100001  施笑槐   22   女  文科六班\n",
       "1    1500100002  吕金鹏   24   男  文科六班\n",
       "2    1500100003  单乐蕊   22   女  理科六班\n",
       "3    1500100004  葛德曜   24   男  理科三班\n",
       "4    1500100005  宣谷芹   22   女  理科五班\n",
       "..          ...  ...  ...  ..   ...\n",
       "995  1500100996  厉运凡   24   男  文科三班\n",
       "996  1500100997  陶敬曦   21   男  理科六班\n",
       "997  1500100998  容昆宇   22   男  理科四班\n",
       "998  1500100999  钟绮晴   23   女  文科五班\n",
       "999  1500101000  符瑞渊   23   男  理科六班\n",
       "\n",
       "[1000 rows x 5 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取文件构建DataFrame\n",
    "students = pd.read_csv(\"../data/students.txt\",\n",
    "                       sep=\",\",\n",
    "                       names=[\"id\",\"name\",\"age\",\"sex\",\"clazz\"],\n",
    "                       encoding=\"UTF-8\")\n",
    "students"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>age</th>\n",
       "      <th>sex</th>\n",
       "      <th>clazz</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1500100002</td>\n",
       "      <td>吕金鹏</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1500100004</td>\n",
       "      <td>葛德曜</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>理科三班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1500100006</td>\n",
       "      <td>边昂雄</td>\n",
       "      <td>21</td>\n",
       "      <td>男</td>\n",
       "      <td>理科二班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1500100009</td>\n",
       "      <td>沈德昌</td>\n",
       "      <td>21</td>\n",
       "      <td>男</td>\n",
       "      <td>理科一班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1500100010</td>\n",
       "      <td>羿彦昌</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>991</th>\n",
       "      <td>1500100992</td>\n",
       "      <td>莫运盛</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>1500100996</td>\n",
       "      <td>厉运凡</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科三班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>1500100997</td>\n",
       "      <td>陶敬曦</td>\n",
       "      <td>21</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>1500100998</td>\n",
       "      <td>容昆宇</td>\n",
       "      <td>22</td>\n",
       "      <td>男</td>\n",
       "      <td>理科四班</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>507 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             id name  age sex clazz\n",
       "1    1500100002  吕金鹏   24   男  文科六班\n",
       "3    1500100004  葛德曜   24   男  理科三班\n",
       "5    1500100006  边昂雄   21   男  理科二班\n",
       "8    1500100009  沈德昌   21   男  理科一班\n",
       "9    1500100010  羿彦昌   23   男  理科六班\n",
       "..          ...  ...  ...  ..   ...\n",
       "991  1500100992  莫运盛   24   男  理科六班\n",
       "995  1500100996  厉运凡   24   男  文科三班\n",
       "996  1500100997  陶敬曦   21   男  理科六班\n",
       "997  1500100998  容昆宇   22   男  理科四班\n",
       "999  1500101000  符瑞渊   23   男  理科六班\n",
       "\n",
       "[507 rows x 5 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 布尔值索引\n",
    "students[students[\"sex\"] == \"男\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1500100002</td>\n",
       "      <td>吕金鹏</td>\n",
       "      <td>424</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1500100003</td>\n",
       "      <td>单乐蕊</td>\n",
       "      <td>422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1500100004</td>\n",
       "      <td>葛德曜</td>\n",
       "      <td>424</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1500100005</td>\n",
       "      <td>宣谷芹</td>\n",
       "      <td>422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>1500100996</td>\n",
       "      <td>厉运凡</td>\n",
       "      <td>424</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>1500100997</td>\n",
       "      <td>陶敬曦</td>\n",
       "      <td>421</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>1500100998</td>\n",
       "      <td>容昆宇</td>\n",
       "      <td>422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>1500100999</td>\n",
       "      <td>钟绮晴</td>\n",
       "      <td>423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>423</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             id name  age\n",
       "0    1500100001  施笑槐  422\n",
       "1    1500100002  吕金鹏  424\n",
       "2    1500100003  单乐蕊  422\n",
       "3    1500100004  葛德曜  424\n",
       "4    1500100005  宣谷芹  422\n",
       "..          ...  ...  ...\n",
       "995  1500100996  厉运凡  424\n",
       "996  1500100997  陶敬曦  421\n",
       "997  1500100998  容昆宇  422\n",
       "998  1500100999  钟绮晴  423\n",
       "999  1500101000  符瑞渊  423\n",
       "\n",
       "[1000 rows x 3 columns]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 选择多个字段\n",
    "students[[\"id\",\"name\",\"age\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>age</th>\n",
       "      <th>sex</th>\n",
       "      <th>clazz</th>\n",
       "      <th>new_age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1500100002</td>\n",
       "      <td>吕金鹏</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1500100003</td>\n",
       "      <td>单乐蕊</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1500100004</td>\n",
       "      <td>葛德曜</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>理科三班</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1500100005</td>\n",
       "      <td>宣谷芹</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>理科五班</td>\n",
       "      <td>122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>1500100996</td>\n",
       "      <td>厉运凡</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科三班</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>1500100997</td>\n",
       "      <td>陶敬曦</td>\n",
       "      <td>21</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>1500100998</td>\n",
       "      <td>容昆宇</td>\n",
       "      <td>22</td>\n",
       "      <td>男</td>\n",
       "      <td>理科四班</td>\n",
       "      <td>122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>1500100999</td>\n",
       "      <td>钟绮晴</td>\n",
       "      <td>23</td>\n",
       "      <td>女</td>\n",
       "      <td>文科五班</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             id name  age sex clazz  new_age\n",
       "0    1500100001  施笑槐   22   女  文科六班      122\n",
       "1    1500100002  吕金鹏   24   男  文科六班      124\n",
       "2    1500100003  单乐蕊   22   女  理科六班      122\n",
       "3    1500100004  葛德曜   24   男  理科三班      124\n",
       "4    1500100005  宣谷芹   22   女  理科五班      122\n",
       "..          ...  ...  ...  ..   ...      ...\n",
       "995  1500100996  厉运凡   24   男  文科三班      124\n",
       "996  1500100997  陶敬曦   21   男  理科六班      121\n",
       "997  1500100998  容昆宇   22   男  理科四班      122\n",
       "998  1500100999  钟绮晴   23   女  文科五班      123\n",
       "999  1500101000  符瑞渊   23   男  理科六班      123\n",
       "\n",
       "[1000 rows x 6 columns]"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 处理某一个列,增加一个新的列\n",
    "students[\"new_age\"] = students[\"age\"] + 100\n",
    "students"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "clazz\n",
       "文科一班     72\n",
       "文科三班     94\n",
       "文科二班     87\n",
       "文科五班     84\n",
       "文科六班    104\n",
       "文科四班     81\n",
       "理科一班     78\n",
       "理科三班     68\n",
       "理科二班     79\n",
       "理科五班     70\n",
       "理科六班     92\n",
       "理科四班     91\n",
       "Name: id, dtype: int64"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 分组聚合\n",
    "students.groupby(\"clazz\")[\"id\"].count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "文科六班    104\n",
       "文科三班     94\n",
       "理科六班     92\n",
       "理科四班     91\n",
       "文科二班     87\n",
       "文科五班     84\n",
       "文科四班     81\n",
       "理科二班     79\n",
       "理科一班     78\n",
       "文科一班     72\n",
       "理科五班     70\n",
       "理科三班     68\n",
       "Name: clazz, dtype: int64"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "students[\"clazz\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:ylabel='clazz'>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pylab import mpl\n",
    "\n",
    "# 设置文件现在字体\n",
    "mpl.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "# 安装matplotlib\n",
    "# pip install matplotlib\n",
    "\n",
    "students[\"clazz\"].value_counts().plot.pie()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "clazz\n",
       "文科一班    22.416667\n",
       "文科三班    22.680851\n",
       "文科二班    22.379310\n",
       "文科五班    22.309524\n",
       "文科六班    22.605769\n",
       "文科四班    22.506173\n",
       "理科一班    22.333333\n",
       "理科三班    22.676471\n",
       "理科二班    22.556962\n",
       "理科五班    22.642857\n",
       "理科六班    22.489130\n",
       "理科四班    22.637363\n",
       "Name: age, dtype: float64"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 组内计算平均值\n",
    "students.groupby(\"clazz\")[\"age\"].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>cid</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>1000001</td>\n",
       "      <td>98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>1000002</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>1000003</td>\n",
       "      <td>137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>1000004</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>1000005</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5995</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>1000002</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5996</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>1000003</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5997</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>1000007</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5998</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>1000008</td>\n",
       "      <td>87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5999</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>1000009</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6000 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              id      cid  score\n",
       "0     1500100001  1000001     98\n",
       "1     1500100001  1000002      5\n",
       "2     1500100001  1000003    137\n",
       "3     1500100001  1000004     29\n",
       "4     1500100001  1000005     85\n",
       "...          ...      ...    ...\n",
       "5995  1500101000  1000002     78\n",
       "5996  1500101000  1000003     81\n",
       "5997  1500101000  1000007      5\n",
       "5998  1500101000  1000008     87\n",
       "5999  1500101000  1000009     28\n",
       "\n",
       "[6000 rows x 3 columns]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 表关联\n",
    "scores = pd.read_csv(\"../data/score.txt\",\n",
    "                       sep=\",\",\n",
    "                       names=[\"id\",\"cid\",\"score\"],\n",
    "                       encoding=\"UTF-8\")\n",
    "scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id\n",
       "1500100001    406\n",
       "1500100002    440\n",
       "1500100003    359\n",
       "1500100004    421\n",
       "1500100005    395\n",
       "             ... \n",
       "1500100996    355\n",
       "1500100997    293\n",
       "1500100998    398\n",
       "1500100999    371\n",
       "1500101000    379\n",
       "Name: score, Length: 1000, dtype: int64"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scores.groupby(\"id\")[\"score\"].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>age</th>\n",
       "      <th>sex</th>\n",
       "      <th>clazz</th>\n",
       "      <th>new_age</th>\n",
       "      <th>cid</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>122</td>\n",
       "      <td>1000001</td>\n",
       "      <td>98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>122</td>\n",
       "      <td>1000002</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>122</td>\n",
       "      <td>1000003</td>\n",
       "      <td>137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>122</td>\n",
       "      <td>1000004</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>122</td>\n",
       "      <td>1000005</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5995</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>123</td>\n",
       "      <td>1000002</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5996</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>123</td>\n",
       "      <td>1000003</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5997</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>123</td>\n",
       "      <td>1000007</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5998</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>123</td>\n",
       "      <td>1000008</td>\n",
       "      <td>87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5999</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>123</td>\n",
       "      <td>1000009</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6000 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              id name  age sex clazz  new_age      cid  score\n",
       "0     1500100001  施笑槐   22   女  文科六班      122  1000001     98\n",
       "1     1500100001  施笑槐   22   女  文科六班      122  1000002      5\n",
       "2     1500100001  施笑槐   22   女  文科六班      122  1000003    137\n",
       "3     1500100001  施笑槐   22   女  文科六班      122  1000004     29\n",
       "4     1500100001  施笑槐   22   女  文科六班      122  1000005     85\n",
       "...          ...  ...  ...  ..   ...      ...      ...    ...\n",
       "5995  1500101000  符瑞渊   23   男  理科六班      123  1000002     78\n",
       "5996  1500101000  符瑞渊   23   男  理科六班      123  1000003     81\n",
       "5997  1500101000  符瑞渊   23   男  理科六班      123  1000007      5\n",
       "5998  1500101000  符瑞渊   23   男  理科六班      123  1000008     87\n",
       "5999  1500101000  符瑞渊   23   男  理科六班      123  1000009     28\n",
       "\n",
       "[6000 rows x 8 columns]"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 关联两个半iao\n",
    "join_df = students.merge(scores,on=\"id\")\n",
    "join_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "name\n",
       "丁从安    492\n",
       "丁昌茂    363\n",
       "丁运凡    463\n",
       "丁震轩    353\n",
       "丁香巧    246\n",
       "      ... \n",
       "黎雨珍    550\n",
       "齐运杰    469\n",
       "龙浩初    298\n",
       "龙震博    349\n",
       "龚晗昱    401\n",
       "Name: score, Length: 996, dtype: int64"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "join_df.groupby(\"name\")[\"score\"].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "clazz  name\n",
       "文科一班   乐绮烟     417\n",
       "       侯从寒     373\n",
       "       俞昂杰     198\n",
       "       农鸿晖     391\n",
       "       凌思菱     283\n",
       "              ... \n",
       "理科四班   雍飞莲     357\n",
       "       靳鸿哲     313\n",
       "       鞠访烟     417\n",
       "       韩运升     292\n",
       "       麴星腾     419\n",
       "Name: score, Length: 1000, dtype: int64"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算每个班级总分的平均分\n",
    "sum_score = join_df.groupby([\"clazz\",\"name\"])[\"score\"].sum()\n",
    "sum_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "clazz\n",
       "文科一班    377.944444\n",
       "文科三班    383.670213\n",
       "文科二班    368.896552\n",
       "文科五班    365.404762\n",
       "文科六班    370.240385\n",
       "文科四班    380.234568\n",
       "理科一班    356.679487\n",
       "理科三班    376.632353\n",
       "理科二班    378.721519\n",
       "理科五班    386.885714\n",
       "理科六班    365.163043\n",
       "理科四班    366.010989\n",
       "Name: score, dtype: float64"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算平均分\n",
    "avg_score = sum_score.groupby(\"clazz\").mean()\n",
    "avg_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:ylabel='score'>"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "avg_score.plot.pie()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将结果保存到文件中\n",
    "avg_score.to_csv(\"../data/avg_score.txt\",header=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>age</th>\n",
       "      <th>sex</th>\n",
       "      <th>clazz</th>\n",
       "      <th>new_age</th>\n",
       "      <th>type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1500100001</td>\n",
       "      <td>施笑槐</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>122</td>\n",
       "      <td>文科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1500100002</td>\n",
       "      <td>吕金鹏</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科六班</td>\n",
       "      <td>124</td>\n",
       "      <td>文科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1500100003</td>\n",
       "      <td>单乐蕊</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>122</td>\n",
       "      <td>理科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1500100004</td>\n",
       "      <td>葛德曜</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>理科三班</td>\n",
       "      <td>124</td>\n",
       "      <td>理科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1500100005</td>\n",
       "      <td>宣谷芹</td>\n",
       "      <td>22</td>\n",
       "      <td>女</td>\n",
       "      <td>理科五班</td>\n",
       "      <td>122</td>\n",
       "      <td>理科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>1500100996</td>\n",
       "      <td>厉运凡</td>\n",
       "      <td>24</td>\n",
       "      <td>男</td>\n",
       "      <td>文科三班</td>\n",
       "      <td>124</td>\n",
       "      <td>文科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>1500100997</td>\n",
       "      <td>陶敬曦</td>\n",
       "      <td>21</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>121</td>\n",
       "      <td>理科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>1500100998</td>\n",
       "      <td>容昆宇</td>\n",
       "      <td>22</td>\n",
       "      <td>男</td>\n",
       "      <td>理科四班</td>\n",
       "      <td>122</td>\n",
       "      <td>理科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>1500100999</td>\n",
       "      <td>钟绮晴</td>\n",
       "      <td>23</td>\n",
       "      <td>女</td>\n",
       "      <td>文科五班</td>\n",
       "      <td>123</td>\n",
       "      <td>文科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>1500101000</td>\n",
       "      <td>符瑞渊</td>\n",
       "      <td>23</td>\n",
       "      <td>男</td>\n",
       "      <td>理科六班</td>\n",
       "      <td>123</td>\n",
       "      <td>理科</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             id name  age sex clazz  new_age type\n",
       "0    1500100001  施笑槐   22   女  文科六班      122   文科\n",
       "1    1500100002  吕金鹏   24   男  文科六班      124   文科\n",
       "2    1500100003  单乐蕊   22   女  理科六班      122   理科\n",
       "3    1500100004  葛德曜   24   男  理科三班      124   理科\n",
       "4    1500100005  宣谷芹   22   女  理科五班      122   理科\n",
       "..          ...  ...  ...  ..   ...      ...  ...\n",
       "995  1500100996  厉运凡   24   男  文科三班      124   文科\n",
       "996  1500100997  陶敬曦   21   男  理科六班      121   理科\n",
       "997  1500100998  容昆宇   22   男  理科四班      122   理科\n",
       "998  1500100999  钟绮晴   23   女  文科五班      123   文科\n",
       "999  1500101000  符瑞渊   23   男  理科六班      123   理科\n",
       "\n",
       "[1000 rows x 7 columns]"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "students[\"type\"] = students[\"clazz\"].str[0:2]\n",
    "students"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>line</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>java,spark,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>java,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>java,spark,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>spark,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>java,spark,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>java,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>java,spark,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>spark,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>java,spark,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>java,scala,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>java,spark,hive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>spark,scala,hive</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     line\n",
       "0   java,spark,scala,hive\n",
       "1         java,scala,hive\n",
       "2         java,spark,hive\n",
       "3        spark,scala,hive\n",
       "4   java,spark,scala,hive\n",
       "5         java,scala,hive\n",
       "6         java,spark,hive\n",
       "7        spark,scala,hive\n",
       "8   java,spark,scala,hive\n",
       "9         java,scala,hive\n",
       "10        java,spark,hive\n",
       "11       spark,scala,hive"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# wordcount\n",
    "lines = pd.read_csv(\"../data/words.txt\",sep=\"|\",names=[\"line\"])\n",
    "lines"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "hive     12\n",
       "java      9\n",
       "spark     9\n",
       "scala     9\n",
       "Name: line, dtype: int64"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "word_count = lines[\"line\"].str.split(\",\").explode().value_counts()\n",
    "word_count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:ylabel='line'>"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZwAAAGFCAYAAADJmEVqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1lElEQVR4nO3dd3zU9eE/8Nfncne5uyR32XsRREYEBFQogoIIgoIDcGC1oLaItl8XuOumWNuiP0cVrVao4KgTBEEBQQqKcGyZhpCQvS+57Nz4/YHSqowkd/d5f8br+Xj4QCF39womed3783kPye/3+0FERBRiBtEBiIhIH1g4REQkCxYOERHJgoVDRESyYOEQEZEsWDhERCQLFg4REcmChUNERLJg4RARkSxYOEREJAsWDhERyYKFQ0REsmDhEBGRLFg4REQkCxYOERHJgoVDRESyYOEQEZEsWDhERCQLFg4REcmChUNERLJg4RARkSxYOEREJAsWDhERyYKFQ0REsmDhEBGRLFg4REQkCxYOERHJgoVDRESyYOEQEZEsWDhERCQLFg4REcmChUNERLJg4RARkSxYOEREJAsWDhERyYKFQ0REsmDhEBGRLFg4REQkCxYOERHJgoVDRESyYOEQEZEsWDhERCQLFg4REcmChUNERLJg4RARkSyMogMQqUWH14e6pnY0tHrQ0NoBd6sHDS0//NraAfcPv9fh9Z/yeSQJiDCHIcpigt1iPPar1YQoixF2y7FfHTYT7BaTTJ8ZkTxYOEQ/aG73oKSuBcWuFhTXtaCkrgUlrhaU1DWjxNWCKncbfKfukqCymcOQ7LAgxWFBst2K9BgrMmJtyIy1ISPWimS7BZIkyReIKECS3++X8VuISDyvz48j1Y3YV+bG/rIG7C9rwIEyN8obWkVH6xKLyYDeSVHom2I//k+flCiOjEixWDikaV6fH/tKG7CtsBb7yhpwoNyNQxVutHb4REcLmbRoK/qm2NEvJQr906NxbnYMom1m0bGIWDikLR6vD3tK6vHtkVp8m18DZ0Ed3G0e0bGEkiSgd1IUhuXEYVhOLM7rEYfYCBYQyY+FQ6rm8/mxs9iFbw7XYHN+DbYX1qGp3Ss6lqJJEtArMRJDe8RhWE4cRpwRD4eNl+Eo9Fg4pDqtHV5syqvGF3srsPZABaob20VHUjWjQcJ5PWIxtl8SxuUmIy3aKjoSaRQLh1ShvrkDaw9U4Iu9FdjwfRWaOYoJmdxUO8b1S8bYfknol2oXHYc0hIVDilXf0oEVu8uwfHcpthyphUfOOckEAMiItWJ8bjKmDElHn2SWDwWGhUOK4vX58dWhSny4rQRr9legzaPd2WRq0z/NgavPSccVA9MUf89n/fr1mDFjBgoKCk745wUFBejRowf4409eXPhJylBXAGz/F6S9n+De6kdR067sH2h6tKekHntK6jF3xX6M65eEq8/JwMgz4mEwqG/xaWZmJurq6kTH0B0WDonj7QAOLAe2LQLy1wPwwwBgTvoBPJjfX3A4Opl2jw/Ld5dh+e4ypDgsmDw4DTcMy0KKQz2TDQwGA6Kjo0XH0B1u3knya6wC1jwBPNsXeH8GkL8OwH8vbVzm/VJYNOqasvpW/H3dYVzwl3W4690d+K6kXnSkn1i2bBmysrIQGxuLl1566fjvFxQU/GJboLfffhsjRow4/t8ulwsWiwVVVVUAgK1bt2Lo0KFwOByYPHky6uuV9bmqAQuH5NNQBqx6EHh+ALDxWaCp6oQfFlWxBUOjG2QOR4Ho8Prxyc5STHxxI6a9thlfHqgQfn+kpqYGzzzzDD777DM8+eSTmD17NlpbT7590cSJE7Fjxw64XC4AwOrVqzF8+HAkJCTA5XJhwoQJmDBhAnbv3o2GhgbMnj1bps9EO1g4FHquImD5PcDzA4HNLwMdzaf8cAl+3JPglCkcBds3+TW4eaETY5/bgHe3HEWbR8wU9sbGRrzyyivIzc3FzJkz0d7ejoqKipN+vN1ux+jRo7F69WoAwKpVqzBlyhQAwIoVK2AymfDYY48hKysLc+bMwbJly2T5PLSEhUOhU5sPLP0D8MIgwPkG4G3r9EOHuFYiTOIMNTXLq2zEAx/twfl//hL/2JCP1g55iycmJgYDBgwAAJjNx7byOd2oa+rUqVi5ciWAYyOcyZMnAwCKi4tRVVWFmJgYREdH45prrkFVVdUpR0z0SywcCr6qQ8BHtwIvngPseAvwdXT5KYzuEvw2rTgE4Uhu1Y3t+NNn+zHqr+ux5NtCeLzyvJGw27u+bujyyy/H2rVrsWfPHmRmZiIlJQUAkJ6ejiFDhmDnzp3YuXMndu3ahR07dsBk4mzKrmDhUPBU7D02CeDlocDudwF/YO9ob7D8Jzi5SBHKG1rx8Mff4eJnv8LSnSXC7/GcSGxsLPr06YOnn34aU6dOPf77l112GY4ePYotW7bAarXigw8+wPjx4xX5OSgZC4cCV1cIvHcj8Mr5wN6PAX9w3sGml3+JFAv3SdOagppm3PnuTkx4/j9Ys+/k91REmTJlCt55553jl9MAIDo6GsuWLcP8+fORk5OD999/H8uWLYPRyJUlXcGdBqj7PO3A188DG+YDnpaQvMQn6XNwV97gkDw3KcOQrBg8NqkfBqRHi45CIcbCoe7JWwt8di9QezikL9OUcDZyi+4L6WuQeAYJuO68TNx3SW8eFqdhLBzqmoZSYNUDwL6lsr3kLREvYW1NrGyvR+LERphx//jeuOacjF8szCT1Y+FQ53g9x9bQfPUM0N4o60vvyrwRVxyaIOtrkliDM6Px1JVnITfVIToKBRELh06vYCOwYg5QtV/Iy/tsCejreg5tPs5x0ZMwg4QbhmZi9iW9Ybdw+rEW8DuYTq6xEvhoJrDwMmFlAwCG5ir8IeOIsNcnMbw+PxZ9U4iL53+FLw8obzYbdR1HOHRiu94FPrsPaFPGBoXlqWMxLP8m0TFIoKuHpOPRSf0QxdGOarFw6Kfam4AVs4Fd74hO8hN+gwkXYwEON6tnC3wKvlSHBX+9eiDOPyNedBTqBl5So/8q3wO8eqHiygYAJF8H7kvdLToGCVZa34ob3vgWc5fvE7YpKHUfRzh0zJZ/AJ8/3KUNNuXWGtsXfUofER2DFKJPchSev24QeidHiY5CncQRjt61uID3bgA+m6PosgEAS+1+XJFUKToGKcSBcjcuf2kj3tt6VHQU6iQWjp4VbQEWjAT2fyo6SafNsm8WHYEUpM3jw/0f7sEDH+7mJTYV4CU1PfL7gY3PAev+BPg8otN0ic8Sg/6NL6DJEyY6CinMwHQHXrlhCFKjObFEqTjC0ZvGKmDxZGDtE6orGwAwtNbh7vQ80TFIgXYV12PiixuxKa9adBQ6CRaOnpTuBBaMAA5/KTpJQK6S1omOQApV29SO3/xzC15ezzclSsRLanrx/Rrg/emy74MWCn7JgMuNr2KPO0J0FFKwS3KT8Ny1Z8Nm5pk1SsERjh7sWAy8c60mygYAJL8Pc5K3i45BCvf53gpc99pmVDcqe/alnrBwtG79M8DS36vyfs2pDG/4XHQEUoHdxfWY/PLXOFLdJDoKgYWjXT4vsOwOYP080UlCwlSfj1+nlIqOQSpwtLYZU175GtuP1omOonssHC1qbwLemQZsXyQ6SUjdEvm16AikErVN7bj+H5uxeh93nRaJhaM1jVXAwonA99q/5NSj4gvEmLR1qZBCp7XDh1mLt2Hx5kLRUXSLhaMlNYeBN8YCpfq4oS61N+LeDHHn9JD6eH1+/PGT7zD/i4Oio+gSC0crip3HyqZOXweVXeblmhzquhe/zMNfVh0QHUN3WDhaULQFWHQ50FwjOons7BXf4rzoBtExSIVeXn+YpSMzFo7ale8BlkwFOvQ57VOCH7MTtomOQSrF0pEXC0fNqvOAt64CWpVxDLQoQ1wrIUncMIO6h6UjHxaOWrmKgH9dATRViU4inNFdjN+l8UwU6j6WjjxYOGrUWHmsbBqKRSdRjBstG0VHIJVj6YQeC0dtWuqAf10J1B4WnURR0su/RIqlXXQMUrmX1x/GPzbki46hWSwcNWlrBBZPBSr3ik6iOJKnBfenfyc6BmnAvJX7sWwXt00KBRaOWnjagHenASVO0UkUa2zbGtERSAP8fmDOv3fhm8P6W2YQaiwcNfB6gH9PB45sEJ1E0SKqduKiOG7QSIFr9/ow8y0nDpa7RUfRFBaO0vn9wCezgEMrRSdRhTtivxUdgTTC3erBjDe3oKy+RXQUzWDhKN1//gbseV90CtXoX7sK4Qaf6BikEWX1rZjxz61oaO0QHUUTWDhKlrcWWKfN82xCJaypErenF4iOQRpysMKNW/+1DR4v38gEioWjVK6jwIe/Bfz8Iu+qa01fiY5AGvNNfg2eXsk1OoFi4ShRRyvw3g1AS63oJKqUVLYeObZW0TFIY97YeASfcrp0QFg4SrRiNlC2S3QK1ZJ8HbgvlX9/FHz3f7gbhyo4c627WDhK4/wnsHOx6BSqN6r5C9ERSIOa272Y9dY2uDmJoFtYOEpS7ARW3i86hSZYavfjiqRK0TFIg/KrmzD737vg93OH8q5i4ShFYxXw798AXu4HFiyz7JtFRyCN+mJfBV5ez/0Mu4qFowQ+L/DBTUBDiegkmtK76nNEGL2iY5BGzf/iIL7OqxYdQ1VYOEqw5jGg4D+iU2iOobUOd6fniY5BGuXzA7Pf34X6Ft7P6SwWjmiHPge+flF0Cs26SlovOgJpWFl9Kx5byl3KO4uFI1JrA/DpXaJTaFps+UbkRjWJjkEa9snOUqzYXSY6hiqwcERa/Sjg5kKyUJL8XtybvEN0DNK4hz/Zg8oGLjY+HRaOKAUbgW0LRafQheHuVaIjkMa5mjtw34e7RcdQPBaOCB0twLI7AHAevxzMrnxcn8JLHhRa6w9WYcm3haJjKJrqC6egoACSJImO0TXr5gG1nMMvp1sivxYdgXTgTyv2o6Ca9wxPRvWFk5mZibo6FZ3yWLoD+ObvolPoTk7F54gxeUTHII1rbvfij59w1trJqL5wDAYDoqOjRcfoHK8HWPp/gJ+LEeUmtTfi3oz9omOQDmzMq8by3ZwMdCKqL5yfX1LbtGkTBg0aBJvNhvPOOw/79u0DALz99tsYMWLE8Y9zuVywWCyoqqo65eOCatNzQMWe4D8vdcpl3nWiI5BOzF2+H01tHFH/nOoL53/5fD5MnToVkydPRn5+Pi644ALMmTMHADBx4kTs2LEDLpcLALB69WoMHz4cCQkJp3xc0FQdAr76a3Cfk7rEXvEtzotuEB2DdKC8oRX/b80h0TEUR1OFAwA7duzAfffdh6KiIrhcLhw8eBAAYLfbMXr0aKxevRoAsGrVKkyZMuW0jwsKnw9Y9gfA2xa856Quk+DH7IRtomOQTry5qQAHy3l2zv/SVOEYDAY899xzSEtLw+9//3vU1dXB6/3v/ZKpU6di5cqVAI6NcCZPntypxwVs2z+Bom+D93zUbUNcKyFJnI5Ooefx+fEIt735CU0Vzvr16/H6669j37592LJlC2655Zaf/Pnll1+OtWvXYs+ePcjMzERKSkqnHheQ1gZg3dPBez4KiNFdjN+lFYmOQTqx5UgtPtpeLDqGYmiqcNzuY8NXl8uFTZs24Z577vnJIUmxsbHo06cPnn76aUydOrXTjwvIpueBZm5hriQ3WjaKjkA6Mu+zAzwh9AeqLxy/3398ltr48eMxfvx4DB48GLNmzcLvfvc7lJaWoqKi4vjHT5kyBe+8887xy2mdfVy3NJQBm18O7Dko6NLL1yLFwoPuSB7VjW34x4Z80TEUQfKr9JzUTZs2oUePHvj444/xwgsvBPcmf7AsuwPYvkh0CjqBj9LuxT2HB4mOQTphM4fhq3tHIyEqXHQUoVQ7wnn55ZeRnZ2NZ599Fq+88oroOL9UdRDYsVh0CjqJce1rREcgHWlu9+KFtd+LjiGcakc4ivfur4EDy0WnoFOYYfs71tfGiI5BOmEKk7DmnguRFRchOoowqh3hKFrpDpaNCtwVx6nqJJ8Orx/Pr9H3KIeFEwqcBq0K/WtXIdzgEx2DdOSTnSXIq2wUHUMYFk6wFW8Dvv9cdArqhLCmStyeXiA6BumIzw9db3nDwgm29RzdqMm1pq9ERyCdWbGnDIcq9LnlDQsnmIq2AnmrRaegLkgqW48cG8+iJ/n4/cBrOl2Xw8IJpq+eEZ2AukjydeC+1F2iY5DOLNtZisoG/b3RYeEES81hII9rO9RoVAtHpSSvdq8Pi74pEB1DdiycYNn6BgAuaVIjS80+TEqsEh2DdGbJt0fR0q6v039ZOMHQ0QLsXCI6BQXgNsdm0RFIZ1zNHXh/m752LmfhBMN3HwKtLtEpKAB9qj9HRBjX5JC83th4BD6ffq6MsHCCYevrohNQgAwttbgrQ9+rwEl+hTXN+GJfgLvSqwgLJ1Al245tZUOqN1laLzoC6dAbG/UzRZqFE6itb4hOQEESW74RuVFNomOQzmwtqNPNdjcsnEA01wLffSQ6BQWJ5Pfi3mSOVkl+epk8wMIJxM4lgKdFdAoKouHuVaIjkA59vL0EXh1MHmDhdJffDzj/KToFBZnZlY/rU8pExyCdqXS34atDlaJjhBwLp7sOfwnU6udmn57cEvm16AikQ+87i0VHCDkWTndxdKNZORWfI8bkER2DdGbt/krUNbWLjhFSLJzuaHEBh3itX6uk9kbMyTggOgbpTLvXh092loiOEVIsnO74/gvAx3fAWjbR+6XoCKRDWr+sxsLpjgPLRSegELNXfIvzohtExyCd2VfWoOk1OSycrvK0AXlrRaegEJPgxz0J20THIB36Yl+56Aghw8LpqvyvgHbtvgOh/zqnfhUkSftrI0hZVmt4bzUWTlfxcppuGBuKcEuatq+pk/LsLHKh0q3N00BZOF3h93N2ms78xvIf0RFIZ/x+7Y5yWDhdUbwVaNTmFwKdWEb5WqRYtL02gpTni73a/DnDwumKAytEJyCZSZ4W3Ju2V3QM0plvDtegsU17Sy9YOF3BwtGlce1rREcgnWn3+rD+oPb2VmPhdFbVIaCGJ0LqUWTVDoyKrRMdg3RmjQbv47BwOusgRzd6dmf8FtERSGe+ya8RHSHoWDiddXCl6AQk0ICaVTAZuCaH5FPR0IaCam2dQMvC6YyOVqBku+gUJFBYUwV+n35EdAzSmW+PaGuUw8LpjLJdgK9DdAoS7DrTBtERSGe+za8VHSGoWDidUeIUnYAUIKl8PbKt2lwBTsr07REWjv4Us3AIkLztuD9tt+gYpCMlrhYU1TaLjhE0LJzOKOGuwXTMqJbVoiOQzmzW0Gw1Fs7pNFUDrkLRKUghrDV7MTGhSnQM0hEtXVZj4ZwOL6fRz9wevVl0BNKR7Ue1s+iYhXM6nDBAP9On+nNEhPlExyCdKKhuQku7V3SMoGDhnA5HOPQzhpZa3JXBbY5IHj4/cLDCLTpGULBwTsXvB0q54JN+abK0XnQE0pH9ZQ2iIwQFC+dUavKA1nrRKUiBYss3IjdKW9uOkHKxcPSAl9PoJCS/F3OSd4qOQTrBwtEDrr+hUzjfzePGSR4HynkPR/tq8kQnIAUzuw7jupQy0TFIB9ytHk3sOMDCORXXUdEJSOF+G/m16AikE1q4rMbCORm/H6gvFp2CFK5n5ReIMWnv7HlSniMaOBuHhXMyjZWAt010ClI4qc2N2RkHRccgHShxtYiOEDAWzsnUF4lOQCoxybtWdATSgZI6Fo528f4NdZK94lucF63+6+ukbBzhaBlHONRJEvy4J4FT6Cm0OMLRMhcLhzrvnPpVkCS/6BikYe42D+qb1X3UPQvnZDjCoS4wNhThljTOaqTQKnapey0OC+dkOMKhLvqNZaPoCKRxar+sxsI5GY5wqIsyytcgObxddAzSMLVPHGDhnEiLC2jjrCPqGsnTgvvS94qOQRpW16TuNzQsnBPh6Ia6aVw71+RQ6DS0qntXCxbOiTTXik5AKhVZtR2jYrVzBj0pS0MLZ6lpj6dVdAJSsTvitoqOQBrFEc4P2tvb4ff74fP5gvWU4rBwKAADa1fCZOCaHAq+hlYdj3DcbjdmzpyJpKQk2Gw27NmzB+np6di2TeWrrj3ctJO6L6ypArenHREdgzTIrecRzk033YSCggIsWrQIERERcDgcuPvuu/H73/8+WPnE4AiHAjTNvEF0BNIgXd/DWbNmDd544w2MHz8eBoMBkiRh+vTp2LtX5VNDOcKhACWVr0e2lW9cKLjcer6k1qdPHyxcuBAAIEkSJEnChg0bkJubG4xs4nCEQwGSvO24P2236BikMY1tHvj96r0/aAzkwS+++CIuvfRSLFiwAG63G9dccw2OHj2KZcuWBSufGBzhUBCMalkN4DzRMUhDfH7A6/PDGCaJjtItARXOueeei7y8PCxfvhwlJSVIT0/HZZddBofDEax8YrBwKAisNXsxMaEay6viRUchDfH6/YH94BYo4NxWqxUXXHDB8WFefX096uvrkZmZGXA4YXhJjYLk9uhvsLxqkugYpCFqXnkSUOH8/e9/x+zZs9HR0QG/3w9Jko7/6vV6g5VRfhzhUJD0qf4cEWGXocnLNdYUHD693sN59NFHMX/+fMycORMmkylYmcTjCIcCVBSXBWdSLzgt4Xhz7QpE5peLjkQaEe4ZDYSr86JaQKmjoqJw0UUXaatsAI5wqMsK43OwNSkHznAznK3lqGipBloOAS3A5Z4BkL4/KDoiaYQhTL2j5YBnqc2cORMLFixQ/1To/+VX8UVSkkV+Yi84E3vAaTbC2VKKqtZaoPkQcIIDGWujjbDLH5E0SgoLEx2h2wIqnDvuuAM1NTUYMGAAYmJiYLf/99sqPz8/4HDChEeJTkAK4oeE75N6w5mYBafJgG3NpahtqwOaDgBNp398RZQP2SFPSbphVOflNCDAwvlx0afmWPh+VM98kgGHkvvAGZ8JpwnY1lQCV3s90Li/W893NKIFQ4OckXTqhx1d1CqgwrnwwguDlUNZwlk4euKVwnAgtR+ccWlwGv3Y1lgEd0cj0LgvKM+fZ+HpsRQcar6cBgRhHY4mcYSjaR6DEftSc+GMTcXWMC92NhWhsaMecNeH5PUOGqsBSQJUPJ2VFELFl9MAFs6JWaJFJ6Ag6ggz47vUXDhjU+A0dGBnYxGaPXWAW56TOZsNHTDExcJXXSPL65F2GSIjREcISJcLJywsDHV1dbDb7cd3iP5fmlj4yUtqqtYeFo5d6f3hjEnCNrRhV2MhWr01QIO4H/iepFgYWDgUIGN8gugIAely4eTn5x+fjXbkiEYPmeIlNVVpNVmxK/0sOB2JcKIVexqPos1bCdRXio52XEtcJNT93pSUwBgXJzpCQLpcOFlZWSf8d03hCEfRms0R2JneH057HJxowXfuQnT4KoD6CtHRTsoVY2LhUMCM8ereCJb3cE7EovLdrjWmKTwK29PPgtMeC6evCfvcR+HxlwL1paKjdVql3Y800SFI9YzxOhvh6AIvqQnVYHVge1p/OKOi4fS5ccB9FF5fCeAqER2t24oj2zBIdAhSvTCOcDTIHAlIYYBfxRMfVKTeFgNn2llwRtrh9DbgUGMRfN6jgOuo6GhBk29xi45AGmCM01nhnGhm2v/SxCw1STq2vU2rS3QSTaqJTMC2tL5w2uxwelzIayyC31MIuEQnC50DZs5Qo8AZE3RWOJqdmfZzFgcLJ0iqo5KwNbUvnBERcHbUIb+xGGgvANpFJ5NPjaEZksMOfz13HaDu0/UsNU2LyQJchaJTqFJ5dBqcyb3htFmxrb0GBU2lQHu+rgrmRPxJcQALhwLAezhaFdcLOLJBdApVKInNPHbYmNUCZ1sVipvLgbY8gMcK/URLfBSsh0SnINUyGhEWHS06RUBYOCcT30t0AsUqisuGM+kMbLWY4WytQFlLFdD6PcCDUk+pISYcVtEhSLWMsbGq3ikaYOGcXBwL50dHEnrCmZgDZ7gJzpZyVLb+9zRL6rxqh4Qk0SFItdS+6BNg4ZxcXE/RCYQ5nHgmtiZmw2kOw7bmMlS31QLNB094miV1XklkOzR0Li7JzJicLDpCwFg4JxOdBYSFA15t34jwQzp22FhCJraZDNjWXILaNlenT7OkzjtiaxQdgVQsvPeZoiMEjIVzMgYDEJsDVHXvlEel8kkGHEjpC2dcBpwmYHtTMerbG7p9miV13kGTPMchkDZZevcRHSFgLJxTiT9D9YXjlcKwP7UfnHHpcIb5sL2pCO4Od9BOs6TOKzbWQ7Ja4G/h7ArqOkuf3qIjBIyFcyoqnDjQYTBhb9qx0yydBg92Nh5Fkyd0p1lSFyUlAAVFolOQyhhsNpgyM0XHCBgL51TizhCd4LQ6wszYk3YWnDHJ2Gpox67GIrR4aoGGWtHR6ATaEuwwF4hOQWoTfuaZkAwG0TECxsI5FQWuxWkzWrA7vT+c0Ylwog27GwvR6q0GGqpFR6NOcMdZoe7NSUiEcA1cTgNYOKemgBFOi9mGnWlnwelI+OGwsaNoV/hhY3RyNQ4DC4e6zNJH/RMGABbOqdliAVsc0CzfTr/N4ZHYkXYWnI44OH3N+K6xEB5fOVBfLlsGCp3SKA/UP7mV5BbemyMcfUgeAOSvC9nTuy0O7EjLhdMeA6evCft/PM3SpZ7TLKnzCq1cPUtdJEmwnKmNtyksnNPJHBbUwqm3Rh87LjkyGlt/OGzM6ysGXMVBew1SrkMWrsWhrjFlZsAQESE6RlCwcE4nY2hAD6+LiMO2tH5wRjjg9Nbj+8Yi+DzaOs2SOi/fWAsYjYDHIzoKqYQWFnz+iIVzOunndOm46erIRDhT+8IZGYltHS4cbiyGv0Pbp1lS53nhh5SUAH9JmegopBJamaEGsHBOLzwKSOoHlO854R9XOlLgTOkDp80GZ3stjjSVAB1HAF45oZPoSIyGkYVDnWTN1c6WryyczsgYdrxwymIy4EzuBafVCmdbNY42lwFth3nYGHVaU5wNDtEhSB1MJtjOOUd0iqBh4XRCyZkX4xVvKZxtFShprgRa83jYGHVbnSOMhUOdYhs0SDMTBgBA/XslyCA8/RwsrdtzrGyIAlRu94mOQCoRMXKE6AhBxcLphHhrPM6IFr/rAGlDoY1HpVLnRI5g4ejSsJRhoiOQRnxvcYmOQCoQlhCPcI1safMjFk4nDU0JbD0O0Y8OmqqPHfBHdAqRw8+HJEmiYwQVv+o76dzkc2GUOMeCAtcmeSHFx4qOQQoXMXKk6AhBx8LppAhTBHLjtTMfnsTyJrJw6BQMBkScP1x0iqBj4XTBhekXio5AGtEcp52prhR8ltxcGGNiRMcIOhZOF4zPHi86AmmEK8YkOgIpWMSI80VHCAkWThdk2DNwVtxZomOQBlTa/aIjkIJFavD+DcDC6bIJPSaIjkAaUBTBrSroxAx2O6wDB4qOERIsnC4a32M8DBL/2igw+Ra36AikUJEjRkAKCxMdIyT4k7OLEm2JGJw4WHQMUrl95mrREUihHFddJTpCyLBwuoGX1ShQ9YZWSNHcwpN+ypicrMnp0D9i4XTDuKxxXARKAfMlxYmOQArjuOIKSBrehUK7n1kIRVuiMSyVe6tRYFrjo0RHIIWJvupK0RFCioXTTbysRoGqjzGLjkAKYh0yBObsbNExQoqF001jMscgPCxcdAxSsSqHtjZmpMBET9buZIEfsXC6KcIUgZFp2lycRfIoiWgXHYEUQrLZYB+v/Z1MWDgB4GU1CsQRW6PoCKQQ9nHjNHWU9MmwcAIwOnM0Em2JomOQSh0w14iOQArh0MHlNICFExCTwYRf9/216BikUmVhbkg2m+gYJJgpIwO2c88VHUMWLJwAXX3m1YgwaX8oTKHhT44XHYEEc1x1peZO9jwZFk6AosxRuOoMfQyHKfja4u2iI5BIBgOir7xSdArZsHCC4MZ+NyJM0uZmexRa7liL6AgkUNQl42BKTRUdQzYsnCBIjUzF2KyxomOQCtVE81tQtyQJ8bNuE51CVvxqD5IZuTNERyAVKo3sEB2BBIm86CJYep8pOoasWDhBkhufiyFJQ0THIJUpsDWLjkCCxN+mr9ENwMIJqun9pouOQCpzKLxOdAQSIOKCkbCelSs6huxYOEE0KmMUsu3ZomOQiuSH1UIycxNPvdHj6AZg4QSVJEm4sd+NomOQivglAElci6MntmHDYBs0SHQMIVg4QXZ5z8sRa4kVHYNUpCMhWnQEklH8rFmiIwjDwgkyi9GCm8+6WXQMUpHGOKvoCCQT6+DBiBg2VHQMYVg4IXB9n+uRGZUpOgapRG00Fw3rRfxt+h3dACyckDCFmXDPkHtExyCVKI/0io5AMrD074/Ikfo+Q4uFEyJjssbgnKRzRMcgFTga0SI6AslA76MbgIUTUveeey8MEv+K6dS+D3eJjkAhZhs2DFEXXSQ6hnD8aRhC/eL6YWLORNExSOEOmWoAA78VNctkQvIjfxSdQhH4VR5idw6+E1YjZyHRybVJXkgJcaJjUIjETf8Nwnv2FB1DEVg4IZZoS8RNuTeJjkEK50nk2i0tMqakIP7220XHUAwWjgxmnDUDibZE0TFIwZrjedS0FiXdfz8MPEb8OBaODKxGK+4cfKfoGKRgrmiT6AgUZBHnnw/7+EtEx1AUFo5MJuVMQm6c/naHpc6psPtER6AgkjhR4IRYODKRJAn3n3c/JEiio5ACFUW0iY5AQRR7y80wZ2eLjqE4LBwZDUochF/3/bXoGKRAhy0NoiNQkJhSU3W9QeepsHBkdteQu5DjyBEdgxTmoLlGdAQKkqSHH4LBYhEdQ5FYODILDwvHvJHzYJSMoqOQgtRLrZBiokXHoABFXnghosaMER1DsVg4AuTG5WLmwJmiY5DC+JK4+FPNDJGRSHrkEdExFI2FI8jv+v8O/eP7i45BCtISHyk6AgUg5aknYU5PEx1D0Vg4ghgNRswbMY/b3tBx9TFm0RGom6Kvngr7hAmiYygeC0egbEc27hp8l+gYpBBVdtEJqDvCe52BpIcfFh1DFVg4gk3rMw2/SvmV6BikAMVR7aIjUBdJFgvSnn2Ws9I6iYUjmCRJeOr8p2A38+2t3h2xNIqOQF2U9OCDCO/VS3QM1WDhKEBSRBIeHsohud7tD68WHYG6IGrCeMRce43oGKrCwlGIS3MuxaU9LhUdgwSqNDRBiowQHYM6wZSejpQnnxQdQ3VYOAry+PDH0Te2r+gYJJA/KV50BDodkwlp8/+GsKgo0UlUh4WjIFajFS9e9CISrAmio5AgbQm8l6d0iXfdCevAgaJjqBILR2GSIpLw/OjnER4WLjoKCdAQy9lOShYxciRib75ZdAzVYuEoUP+E/nhyOK8P61GNncdXKJUpMxOpf3kGksT/R93FwlGoS3MuxcwB3G9Nb0qjOkRHoBMIcziQ8eoCGGNiREdRNRaOgv3h7D9gbNZY0TFIRgXWZtER6GckkwlpL76A8B49REdRPRaOgkmShD+N+BNnrunIofBa0RHoZ1LmPoWI884THUMTWDgKZzVa8cJFLyDeyumyenAkrA5SOCeMKEX87bfDccUVomNoBgtHBZIjkvHC6Bc4c00H/BIArsVRBMeVVyLhjv8THUNTWDgq8ePMNQmcIaN17QkO0RF0L3LUKKTMfUp0DM1h4ajIpTmX4qGhD7F0NK4xjmckiWQdPBhp/+85SEYeAx9sLByVua7PdSwdjat1hImOoFvhvXohY8ErPG4gRFg4KvRj6ZA2lUV5RUfQJVNqKjJefx1hdm4vFCosHJW6rs91PNJAowojuBZHbsbUFGS++U+YkhJFRzmh9evXIzs7W3SMgLFwVIylo0155nrREXTF3KMHspcsgTkrS3QUzWPhqBwvr2nP96YaIIz3ceQQ3rcvsha/BVNKiugousDC0YBpfaaxdDSkXfJCSogTHUPzrIMGIWvRQhjjgvt3vWbNGvTr1w82mw3Dhw9HXl4eAGDt2rUYMGAAoqKiMGHCBBQXFx9/zNKlS9G7d29ERERgzJgxKC0t7dRrdfdxorBwNGJan2l48LwHRcegIPEkcpPIUIoYPhyZb4RmgsANN9yAm266CQcPHkS/fv3wyCOP4MiRI5g0aRLuuusu7Nu3D3a7HX/4wx8AAHV1dbj22mvx4IMPIi8vD4mJiZg7d+5pX6e7jxOJE8015Pq+1wMAnt7ytOAkFKimuAhwrlRoRI0di7T5f4NkNofk+a1WKzo6OhAbG4vXXnsNHo8Hf/vb3zBy5Ejc/MNZOvPnz8fOnTsBAJGRkSgsLITD4YDT6URTUxMqKytP+zrdfZxIHOFozPV9r8djv3oMRonvJdSsLob//0LBceWVxxZ1hqhsAGDx4sVYt24d0tLSMHr0aHz33XcoKipCTk7O8Y9JT0/HxIkTAQB+vx8PPPAA0tLS8MADD6CjowNe7+mnxnf3cSKxcDRo6plT8crYV2A38z2yWlXafaIjaE7MDTcg5el5kEI4IaO5uRkejwerV69GdXU1RowYgRkzZiAjIwMFBQXHP+7QoUMYNGgQfD4f3n77bWzevBmFhYXYuHEjJk2a1KnX6u7jRGLhaNSwlGF4+7K3kW3PFh2FuuGorVV0BE2Ju20Wkv/4cMhP6/R4PLjkkkuwZMkSVFZWwu/3w+PxYNq0adiwYQMWLlyIoqIizJ07F4mJiTAYDHC73fD7/aitrcXKlSvx1FNPwe/3n/a1uvs4kVg4GpZlz8KSy5ZgWMow0VGoiw5bGkRH0AajEUkPPYTEO++U5eXsdjsWL16MuXPnomfPnvj000+xYMEC9OjRA0uXLsWzzz6L3NxcuFwuvPnmmwCA6dOnIzs7G3379sUTTzyBW2+9Ffv370dr66nfdHT3cSJJfqVXIgXM4/Pgz1v+jPcOvic6CnVSpN+Mfz7TAvDbs9vC4uOR9ux8Hp6mIBzh6IDRYMQfh/0RDw19iJMJVKJRaocUy6nR3WU9+2z0+PADlo3CsHB0ZFqfaXj54pcRZY4SHYU6wZcYKzqCKsVcfz2y3voXTElJoqPQz7BwdOZXqb/CkkuXIMvOfaOUrjk+UnQEVZGsVqT+5RkkP/oIJJNJdBw6ARaODvVw9MCSS5dgaMpQ0VHoFOpjQrdWRGtMmZnIfvcdOC6/XHQUOgUWjk45wh149eJXcfvA2xEmcaNIJaqyc8JAZ0SOGoUeH7wPS+/eoqPQabBwdCzMEIbbzr4NC8cvRFpkmug49DPFke2iIyibwYD4O/4P6a+8zEPTVIKFQzg78Wx8MOkDTMpR/kplPTls5VqckwmLjUXGqwuQcPvtIV/MScHDwiEAQKQ5EvNGzsNfLvgLokycxaYEB8y1oiMokuOKy5GzYjkiR44UHYW6iAs/6RfKm8rxxDdPYGPJRtFRdO/9l6zwu92iYyiCKTUVyU88gciRI0RHoW7iCId+ITkiGa9c/AqeHP4kRzuC+ZN5EBsMBsTceCNyPl3GslE5Fg6d1FW9rsJHV3yE89POFx1Ft1rj9X0z3NyzJ7KWLEbyww/BEBEhOg4FiIVDp5QckYwFFy/Ak8OfRHR4tOg4utMQGy46ghgmE+Jvvw05H38E26BBotNQkLBwqFOu6nUVVkxegen9psNk4CpuuVTb9TcDyzJgAHp88AES7rgjpAelkfxYONRpdrMdc86dg6VXLsXYrLGi4+hCqY7W4khWKxLvvx/Z774DS+8zRcehEOAsNeq2bRXb8Netf8Xemr2io2jWuKYc/PaFQ6JjhJbJhJirpyJu1iyYEhNFp6EQ4ghHoxYuXIhRo0aF9DWGJA3BO5e9g3kj5iHJxp15Q+FguIbX4hgMcFxxOXqu/AzJjz7KstEBHo5CAZEkCZN6TsLFWRdj4d6FePO7N9HiaREdSzMKjS5IFgv8Cj7FsTsiLx6DxDvvRHivXqKjkIw4wqGgsBqtuG3gbVhx1QpcecaVMEj80gqapHjRCYLG9qthyP73e8h46SWWjQ7xp4LM1qxZg379+sFms2H48OHIy8vD448/jgkTJuDCCy+Ew+HAddddh4aG/+6jtXTpUvTu3RsREREYM2YMSktLj//ZqFGjsHDhQjz77LPIysrCZ5999ovXrKioQE5ODhYtWhTyzy/BloCnzn8K7096H5NyJsFo4CA6UO0JDtERAmYZOACZC99E1ptvwjpggOg4JAgLR2Y33HADbrrpJhw8eBD9+vXDI488AgBYtWoVbrnlFjidThQUFBz//bq6Olx77bV48MEHkZeXh8TERMydO/cnz/nqq69i9erVePXVVzF06E/PuGlubsbEiRPx29/+FtOnT5fnkwRwZsyZmDdyHlZNXoWbz7qZp4wGwB1nFR2h28J79UL6319Cj/feQ8SwYaLjkGB8+ykzq9WKjo4OxMbG4rXXXoPH48G8efNw/vnn4ze/+Q0A4P7778fdd9+N559/HpGRkSgsLITD4YDT6URTUxMqKyt/8pyNjY346quvYP7ZmgWv14vrrrsONTU1eOihh2T7HP9XUkQS7h5yN24dcCs+zvsYb+17CyWNJUKyqFWNwwBVHTYtSYgYPhwx109D5OjRkAx8X0vH8CtBZosXL8a6deuQlpaG0aNH47vvvgMAZGRkHP+YtLQ0VFRUAAD8fj8eeOABpKWl4YEHHkBHRwe8Xu9PnnPWrFm/KBsA2LRpEwDAZrNh6dKlofqUOsVmsuHXfX+NFVetwPwL52NAAi+rdFZZlEd0hE4xOByInTEDPVetROYbryNqzBiWDf0Evxpk1NzcDI/Hg9WrV6O6uhojRozAjBkzAAAFBQXHP66oqAjJyckAgLfffhubN29GYWEhNm7ciEmTfnlmTcRJ9pjq2bMn3nvvPTz++ON48MEHf1FUIoQZwjAuexyWXLoEb014CxdnXswJBqdx1KbsWX+W3Fyk/OlP6PXVeiQ9cD/MWVmiI5FC8TtdRh6PB5dccgmWLFmCyspK+P1+eDzH3r1u3rwZixYtwvfff49nnnkGU6ZMAQC43W74/X7U1tZi5cqVeOqpp9DZtbppaWmwWq2YMmUKzGYz3nzzzZB9bt1xduLZeG70c1h+5XJM6zMNjnD13xwPhUPhdaIj/IIUHg7HlVci+9/voceHHyB6ymQYLBbRsUjhWDgystvtWLx4MebOnYuePXvi008/xYIFCwAAkyZNwuuvv47BgwejZ8+eeOyxxwAA06dPR3Z2Nvr27YsnnngCt956K/bv34/WLqzLkCQJTz75JB5//HG0tCjv3XKGPQMPDX0I665Zh5cuegmX5VwGm9EmOpZi5BlrAaMybreaMjOReO+96PXVeqT++WnOOKMu4dY2CvD444+joKAACxcuFB1FMVo9rdhQvAErj6zEf0r+gzZvm+hIQr2/KB7+0nIhr21MTkbURaMRNXYsbMOG8Uhn6jZlvG0i+hmL0YJx2eMwLnscmjqa8OXRL7HyyEp8U/YNPD513EQPJk9CNMJkLBzzGT0RNeZiRF08BpazzmLJUFBwhEOq4mp1YfXR1Vh1ZBWcFU74/D7RkWTx+pYBsK/dHroXMBhgHTgQURePQdSYMTBnZ4futUi3WDikWnWtddhWsQ3OCiec5U4cqjsEP7T55fzXQ4OR9eGWoD6nZDbD9qthiBozBlEXXQRjvHa20CFlYuGQZtS31WN7xXY4K5zYWr4VB+sOamYENKfsbJy30BnQcxjsdlj794d14ABYBgxAxLnn8thmkhULhzTL3e7GjsodcJY74axwYn/Nfnj86rz/c3VDb1z99y6cO2QywXLmmcfLxTpgIMw9snkvhoRi4ZBuNHc0Y0/1HhypP4KChgIU1BegoKEAZU1lih8JDWpPwYPzi07656bUVFgGHisW68ABsPTrx3UxpDgsHNK9Nm/b8fL5+a+NHY2i4wEAIvxmvPVmFEwZ6TBnZMKcmQFTZibMmZkwZ2QgLDpadESi02LhEJ1CdUs1ChsK4WpzobG9Ee5297F/OtzH/72xvREN7Q3H/r2jEY3tjT+5dGeQDDAbzDCHHfsnPCwcJoMJ4WHhx3/PbDj2+1aTFYnWRCTaEpEUkYQkWxISbYlIsCXAZDAJ/JsgChwLhygEmjua4Ycf5jAzi4LoBywcIiKSBfdSIyIiWbBwiIhIFiwcIiKSBQuHiIhkwcIhIiJZsHCIiEgWLBwiIpIFC4eIiGTBwiEiIlmwcIiISBYsHCIikgULh4iIZMHCISIiWbBwiIhIFiwcIiKSBQuHiIhkwcIhIiJZsHCIiEgWLBwiIpIFC4eIiGTBwiEiIlmwcIiISBYsHCIikgULh4iIZMHCISIiWbBwiIhIFiwcIiKSBQuHiIhkwcIhIiJZsHCIiEgWLBwiIpIFC4eIiGTBwiEiIlmwcIiISBYsHCIikgULh4iIZMHCISIiWbBwiIhIFiwcIiKSBQuHiIhkwcIhIiJZsHCIiEgWLBwiIpIFC4eIiGTBwiEiIln8f7FnYVqWA1jNAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "word_count.plot.pie()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0      文科\n",
       "1      文科\n",
       "2      理科\n",
       "3      理科\n",
       "4      理科\n",
       "       ..\n",
       "995    文科\n",
       "996    理科\n",
       "997    理科\n",
       "998    文科\n",
       "999    理科\n",
       "Name: clazz, Length: 1000, dtype: object"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# apply:相当于mao算子\n",
    "students[\"clazz\"].apply(lambda clazz:clazz[0:2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
